package pe.edu.upla.lamerced.bean;

// Generated 30/07/2010 10:51:09 PM by Hibernate Tools 3.2.4.GA

import java.util.Date;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * Una reserva nunca marca a la habitacion como reservada porque se pueden hacer reservaciones a futuro
 * Un hospedaje solo se realiza en le dia de hoy y una habitacion determinada
 * Un hospedaje verifica si es que la habitacion tiene reserva
 * y si el que se hospeda hizo la reserva entocnes se registra el hospedaje y se actualza el estado de la habitacion
 */
public class Hospedaje implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer idhospedaje;
	private Habitacion habitacion;
	private Users usersByIdUsuarioCli;
	private Users usersByIdUsuarioEmp;
	private Date fecReserva;
	private Date fecAlquiler;
	private Date fecSalida;
	private Integer diasreserva;
	private Integer estado;	

	public Hospedaje() {
	}

	public Hospedaje(Integer idhospedaje) {
		this.idhospedaje=idhospedaje;
	}
	
	public Hospedaje(Users usersByIdUsuarioCli, Habitacion habitacion,
			Users usersByIdUsuarioEmp) {
		this.usersByIdUsuarioCli = usersByIdUsuarioCli;
		this.habitacion = habitacion;
		this.usersByIdUsuarioEmp = usersByIdUsuarioEmp;
	}

	public Hospedaje(Users usersByIdUsuarioCli, Habitacion habitacion,
			Users usersByIdUsuarioEmp, Date fecReserva, Date fecAlquiler,
			Date fecSalida, Integer diasreserva, Integer estado) {
		this.usersByIdUsuarioCli = usersByIdUsuarioCli;
		this.habitacion = habitacion;
		this.usersByIdUsuarioEmp = usersByIdUsuarioEmp;
		this.fecReserva = fecReserva;
		this.fecAlquiler = fecAlquiler;
		this.fecSalida = fecSalida;
		this.diasreserva = diasreserva;
		this.estado = estado;
	}

	public Integer getIdhospedaje() {
		return this.idhospedaje;
	}

	public void setIdhospedaje(Integer idhospedaje) {
		this.idhospedaje = idhospedaje;
	}

	public Users getUsersByIdUsuarioCli() {
		return this.usersByIdUsuarioCli;
	}

	public void setUsersByIdUsuarioCli(Users usersByIdUsuarioCli) {
		this.usersByIdUsuarioCli = usersByIdUsuarioCli;
	}

	public Habitacion getHabitacion() {
		return this.habitacion;
	}

	public void setHabitacion(Habitacion habitacion) {
		this.habitacion = habitacion;
	}

	public Users getUsersByIdUsuarioEmp() {
		return this.usersByIdUsuarioEmp;
	}

	public void setUsersByIdUsuarioEmp(Users usersByIdUsuarioEmp) {
		this.usersByIdUsuarioEmp = usersByIdUsuarioEmp;
	}

	public Date getFecReserva() {
		return this.fecReserva;
	}

	public void setFecReserva(Date fecReserva) {
		this.fecReserva = fecReserva;
	}

	public Date getFecAlquiler() {
		return this.fecAlquiler;
	}

	public void setFecAlquiler(Date fecAlquiler) {
		this.fecAlquiler = fecAlquiler;
	}

	public Date getFecSalida() {
		return this.fecSalida;
	}

	public void setFecSalida(Date fecSalida) {
		this.fecSalida = fecSalida;
	}

	public Integer getDiasreserva() {
		return this.diasreserva;
	}

	public void setDiasreserva(Integer diasreserva) {
		this.diasreserva = diasreserva;
	}
	/**
	 * estado 0 = reserva finalizada<br/>
	 * estado 1 = reservado <br/>
	 * estado 2 = hospedaje<br/>
	 * estado 3 = hospedaje finalizado<br/>
	 * @param estado
	 */
	public Integer getEstado() {
		return this.estado;
	}

	/**
	 * estado 0 = reserva finalizada<br/>
	 * estado 1 = reservado <br/>
	 * estado 2 = hospedaje<br/>
	 * estado 3 = hospedaje finalizado<br/>
	 * @param estado
	 */
	public void setEstado(Integer estado) {
		this.estado = estado;
	}
	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this,ToStringStyle.SIMPLE_STYLE);
	}
}
